extends Node

# 简化的鼠标悬停测试脚本
var tooltip_node = null
var hand_container = null

func _ready():
	print("=== 简化测试脚本开始执行 ===")
	
	# 等待游戏完全加载
	await get_tree().process_frame
	await get_tree().process_frame
	
	# 查找提示框节点
	tooltip_node = find_tooltip_node()
	if tooltip_node:
		print("✅ 找到提示框节点: ", tooltip_node.name)
	else:
		print("❌ 未找到提示框节点")
		return
	
	# 查找手牌容器
	hand_container = find_hand_container()
	if hand_container:
		print("✅ 找到手牌容器: ", hand_container.name)
		print("手牌容器子节点数量: ", hand_container.get_child_count())
	else:
		print("❌ 未找到手牌容器")
		return
	
	# 检查第一张卡牌
	if hand_container.get_child_count() > 0:
		var first_card = hand_container.get_child(0)
		print("第一张卡牌信息:")
		print("  - 节点名称: ", first_card.name)
		print("  - 卡牌名称: ", first_card.card_name if first_card.has_method("get") else "无card_name属性")
		print("  - 费用: ", first_card.cost if first_card.has_method("get") else "无cost属性")
		
		# 测试提示框显示
		test_tooltip_display(first_card)
	else:
		print("❌ 手牌容器中没有卡牌")

func find_tooltip_node():
	"""查找提示框节点"""
	var main_scene = get_tree().current_scene
	return find_node_by_type(main_scene, "CardTooltip")

func find_hand_container():
	"""查找手牌容器节点"""
	var main_scene = get_tree().current_scene
	# 可能的手牌容器名称
	var possible_names = ["HandContainer", "PlayerHandContainer", "Hand", "PlayerHand"]
	
	for name in possible_names:
		var container = find_node_by_name(main_scene, name)
		if container:
			return container
	
	return null

func find_node_by_type(node: Node, type_name: String):
	"""递归查找指定类型的节点"""
	if node.get_script() and node.get_script().get_global_name() == type_name:
		return node
	
	for child in node.get_children():
		var result = find_node_by_type(child, type_name)
		if result:
			return result
	
	return null

func find_node_by_name(node: Node, target_name: String):
	"""递归查找指定名称的节点"""
	if node.name == target_name:
		return node
	
	for child in node.get_children():
		var result = find_node_by_name(child, target_name)
		if result:
			return result
	
	return null

func test_tooltip_display(card):
	"""测试提示框显示功能"""
	print("=== 开始测试提示框显示 ===")
	
	if not tooltip_node or not card:
		print("❌ 提示框或卡牌节点无效")
		return
	
	# 模拟鼠标位置
	var mouse_pos = Vector2(100, 100)
	
	# 直接调用提示框的显示方法
	print("调用 show_tooltip...")
	tooltip_node.show_tooltip(card, mouse_pos)
	
	# 检查提示框状态
	await get_tree().create_timer(0.5).timeout
	print("提示框可见性: ", tooltip_node.visible)
	print("提示框透明度: ", tooltip_node.modulate.a)
	
	# 等待一段时间后隐藏
	await get_tree().create_timer(2.0).timeout
	print("调用 hide_tooltip...")
	tooltip_node.hide_tooltip()
	
	# 再次检查状态
	await get_tree().create_timer(0.5).timeout
	print("隐藏后提示框可见性: ", tooltip_node.visible)
	print("隐藏后提示框透明度: ", tooltip_node.modulate.a)
	
	print("=== 提示框测试完成 ===")